/** 存储数据到浏览器, 使用localStorage和sessionStorage
 * 想了一下，虽然localStorage兼容到IE8+，但还是写一下兼容处理吧
 */
import Cookies from 'js-cookie'

/** hasStorage 判断浏览器是否支持localStorage和sessionStorage
 * @return  Boolean
*/
function hasStorage() {
  if (window.localStorage) {
    try {
      window.localStorage.setItem('key', 'value')
      window.localStorage.removeItem('key')
      return true
    } catch (e) {
      return false
    }
  } else {
    return false
  }
}

/** setItem 设置本地缓存
 * @param   key     String    储存名
 * @param   value   any       储存值
 * @param   save    Boolean   true表示用localStorage储存，false表示用sessionStorage
 * @return  null
 */
export function setItem(key, value, save) {
  if (typeof (value) === 'undefined') {
    return false
  }
  if (hasStorage()) {
    value = JSON.stringify(value)
    if (save) {
      value && window.localStorage.setItem(key, value)
    } else {
      value && window.sessionStorage.setItem(key, value)
    }
  } else {
    Cookies.set(key, value)
  }
}

/** getItem 获取本地缓存
 * @param   key     String    储存名
 * @return  value   any       获取的储存值
 */
export function getItem(key) {
  if (hasStorage()) {
    let value
    if (window.sessionStorage.getItem(key)) {
      value = JSON.parse(window.sessionStorage.getItem(key))
      return value
    }
    value = JSON.parse(window.localStorage.getItem(key))
    return value
  } else {
    return Cookies.get(key)
  }
}

/** removeItem 移除本地缓存
 * @param   key     String    储存名
 * @return  null
 */
export function removeItem(key) {
  if (hasStorage()) {
    window.sessionStorage.removeItem(key)
    window.localStorage.removeItem(key)
  } else {
    Cookies.remove(key)
  }
}

/** removeItem 移除本地缓存
 * @param   key     String    储存名
 * @return  null
 */
export function removeCookies(key) {
  // Cookies.remove(key)
  // var data=document.cookie;    
  // var dataArray=data.split("; ");    
  // for(var i=0;i<dataArray.length; i++) {
  //   console.log("----------", dataArray[i])
    // var varName=dataArray[i].split("=");    
    // document.cookie=varName[0]+"=''; expires="+myDate.toGMTString();    
  // }    
}
